home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 1993 February / PCW 1993-02.img / POSTSCPT.EXE / EHANDLER.PS < prev    next >
Encoding:
Text File  |  1993-02-01  |  2.9 KB  |  80 lines

  1. 
  2. %!
  3. % lib/ehandler.ps - Downloaded Error Break-page handler
  4. % Copyright (c) 1984, 1985, 1986 Adobe Systems Incorporated. All Rights Reserved.
  5. % RCSID: $Header: ehandler.ps,v 2.1 85/11/24 12:20:03 shore Rel $
  6. % Change or remove this section to use ehandler.ps on a job-by-job basis
  7. 0000 %serverloop password
  8. /$brkpage where
  9. {pop pop(Error Handler in place - not loaded again\n)print flush
  10. stop} %aborts to end-of-job.
  11. {dup serverdict begin statusdict begin checkpassword
  12. {(Error Handler downloaded.\n)print flush exitserver}
  13. {pop(Bad Password on loading error handler!!!\n)print flush stop}ifelse
  14. }ifelse
  15. /$brkpage 64 dict def $brkpage begin
  16. /prnt
  17. {dup type/stringtype ne{=string cvs}if dup length 6 mul
  18. /tx exch def/ty 10 def
  19. currentpoint/toy exch def/tox exch def 1 setgray newpath
  20. tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto
  21. closepath fill tox toy moveto 0 setgray show}bind def
  22. /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def
  23. /=={/cp 0 def typeprint nl}def
  24. /typeprint{dup type dup currentdict exch known
  25. {exec}{unknowntype}ifelse}readonly def
  26. /lmargin 72 def
  27. /rmargin 72 def
  28. /tprint
  29. {dup length cp add rmargin gt{nl/cp 0 def}if
  30. dup length cp add/cp exch def prnt}readonly def
  31. /cvsprint{=string cvs tprint( )tprint}readonly def
  32. /unknowntype{exch pop cvlit(??)tprint cvsprint}readonly def
  33. /integertype{cvsprint}readonly def
  34. /realtype{cvsprint}readonly def
  35. /booleantype{cvsprint}readonly def
  36. /operatortype{(//)tprint cvsprint}readonly def
  37. /marktype{pop(-mark- )tprint}readonly def
  38. /dicttype{pop(-dictionary- )tprint}readonly def
  39. /nulltype{pop(-null- )tprint}readonly def
  40. /filetype{pop(-filestream- )tprint}readonly def
  41. /savetype{pop(-savelevel- )tprint}readonly def
  42. /fonttype{pop(-fontid- )tprint}readonly def
  43. /nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def
  44. /stringtype
  45. {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse
  46. }readonly def
  47. /arraytype
  48. {dup rcheck{dup xcheck
  49. {({)tprint{typeprint}forall(})tprint}
  50. {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse
  51. }readonly def
  52. /packedarraytype
  53. {dup rcheck{dup xcheck
  54. {({)tprint{typeprint}forall(})tprint}
  55. {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}
  56. ifelse
  57. }readonly def
  58. /courier/Courier findfont 10 scalefont def
  59. /OLDhandleerror errordict /handleerror get def
  60. end %$brkpage
  61. errordict
  62. /handleerror
  63. {systemdict begin $error begin $brkpage begin
  64. %Note:newerror is created in $error by all default error operators
  65. newerror
  66. {/newerror false store
  67. vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont
  68. lmargin 720 moveto(ERROR: )prnt errorname prnt
  69. nl(OFFENDING COMMAND: )prnt/command load prnt
  70. $error/ostack
  71. known
  72. {nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if
  73. systemdict/showpage get exec
  74. /newerror true store/OLDhandleerror load end end end exec}{end end end}
  75. ifelse}
  76. dup 0 systemdict put %bind true systemdict value
  77. dup 4 $brkpage put %bind true $breakpage value
  78. bind readonly %lock it up
  79. put
  80.